package com.atguigu.dao;

import com.atguigu.pojo.Food;

import java.util.List;

public interface FoodDao {

    /**
     * 增加菜品
     * @param food
     * @return
     */
    void addFood(Food food);

    /**
     * 删除菜品
     * @param id
     * @return
     */
    void deleteFoodById(Integer id);

    /**
     * 修改菜品信息
     * @param food
     * @return
     */
    void updateFood(Food food);

    /**
     * 查询菜品信息
     * @param id
     * @return
     */
    Food queryFoodById(Integer id);

    /**
     * 返回菜品的数量
     * @return
     */
    long getCount();

    /**
     * 返回分类后的菜品的数量
     * @param food_id
     * @return
     */
    long getClassCount(Integer food_id);

    /**
     * 返回所有菜品的信息
     * @return
     */
    List<Food> queryFoods();

    /**
     * 返回分页后的菜品信息
     * @param page
     * @param size
     * @return
     */
    List<Food> queryLimitFoods(Integer page, Integer size);

    /**
     * 返回菜类、分页后的菜品信息
     * @param page
     * @param size
     * @param food_id
     * @return
     */
    List<Food> queryLimitClassFoods(Integer food_id, Integer page, Integer size);

    /**
     * 返回规定区间的菜品信息（分页后）
     * @param min
     * @param max
     * @param page
     * @param size
     * @return
     */
    List<Food> queryPriceFoods(Integer min, Integer max, Integer page, Integer size);

    /**
     * 返回某价值区间的菜品数量
     * @param min
     * @param max
     * @return
     */
    List<Food> queryPriceCount(Integer min, Integer max);

    /**
     * 返回规定区间的菜品信息（分类分页后）
     * @param min
     * @param max
     * @param page
     * @param size
     * @param food_id
     * @return
     */
    List<Food> queryPriceClassFoods(Integer food_id, Integer min, Integer max, Integer page, Integer size);

    /**
     * 返回分类后某价值区间的菜品数量
     * @param min
     * @param max
     * @param food_id
     * @return
     */
    List<Food> queryPriceClassCount(Integer food_id, Integer min, Integer max);

}
